<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        const data = [
            { id: "01", name: "张大大", pid: "", job: "项目经理" },
            { id: "02", name: "小亮", pid: "01", job: "产品leader" },
            { id: "03", name: "小美", pid: "01", job: "UIleader" },
            { id: "04", name: "老马", pid: "01", job: "技术leader" },
            { id: "05", name: "老王", pid: "01", job: "测试leader" },
            { id: "06", name: "老李", pid: "01", job: "运维leader" },
            { id: "07", name: "小丽", pid: "02", job: "产品经理" },
            { id: "08", name: "大光", pid: "02", job: "产品经理" },
            { id: "09", name: "小高", pid: "03", job: "UI设计师" },
            { id: "10", name: "小刘", pid: "04", job: "前端工程师" },
            { id: "11", name: "小华", pid: "04", job: "后端工程师" },
            { id: "12", name: "小李", pid: "04", job: "后端工程师" },
            { id: "13", name: "小赵", pid: "05", job: "测试工程师" },
            { id: "14", name: "小强", pid: "05", job: "测试工程师" },
            { id: "15", name: "小涛", pid: "06", job: "运维工程师" }
        ]

        // 完成代码
        function arrToTree(list, rootValue) {
            //   //定义一个空数组
            //   const treeData = []
            //   //对数组遍历
            //     list.forEach(item=>{
            //         //找到大哥
            //         if(item.pid===rootValue){
            //             //递归,根据大哥id,找大哥孩子
            //             const children = arrToTree(list,item.id)
            //             //有孩子给大哥名底下加个孩子,没有就不加
            //             if(children.length){
            //               item.children = children
            //             }
            //             //把大哥一家子放进数组
            //             treeData.push(item)
            //         }
            //     })
            //     //返回数组
            //   return treeData
            const treeData = []
            list.forEach(item => {
                if (item.pid === rootValue) {
                    const children = arrToTree(list, item.id)
                    if (children.length) {
                        item.children = children
                    }
                    treeData.push(item)
                }
            })
            return treeData
        }

        // 目标：
        const treeData = arrToTree(data, '')
        console.log(treeData);
    </script>
</body>

</html>